use slightly better names for fns
add sig
move fns into modules