Renamed attributes to avoid bound method errors (returning a function)
Updated with new methods