Initial attempt at fulfilling the requirements of this project