v0.4 Rewritten make system with functions