further base logic work