add preserve method signature functionality