Make makefile more general.
Update makefile.
Renamed to a less ugly name.
Add tests and various functions.