added income considerations, also removed some weird self adding bullshit in buildImpl