Finished implementing basic features