finished fp.m