Code tidy up
Initial attempt at creating generic methods #1

Can handle simple (none constrained generic methods), constrained by all
interfaces, and attributed as class or struct.