adding new functions in
fn was calling wrong overload