#003: implemented increasing algorithm, but was too slow
#004 partially working
#004 completed