fully working, making it nice is next step