fully working. now for more features!