added methods and initialization