it can be more pythonic in future