add more methods and type aliases