working on this again after a long time...