Addede implementation, split to other classes