working solution, cleaned up