All functions work, need parser. Maybe improve encapsulation by reducing
friend function usage.