added implementations and others