add FPShape abstract