direction implemented