changed structure (static functions)