Full functionality
Code clean up