This has been done before, but I do think this could be built off of. Maybe this will help in your research: