Did clean up, implemented more features