Add overloader
Rewrite using overloader