better form, WIP but almost done :)