add static methods & tests