working on this finally