no empty init f