started re-implementing missing methods