Implements first version