reworked for creating new method structure