uses interfaces when executing - preparing for 'pull up'