added magic methods