Some improvements but still a lot to work on... :(