adding first draft implementation