working but needs some work