Cleanup
Add type class to make it easier to create values
Add Writeable trait to make it easier to write to streams