#wip almost finished, just signatures to go.

almost finished, just signatures to go.