add some implementations for easy framework