fim constructor pattern