0.0.4 full remake. with tests