Added some cool functionality. Need to update it more though