sub module fn