trying to make Base simpler, add typed interface later