use inner init object instead F