final functionality added begin final bug testing and clean up