Add first version of implementation