implement every frame type (not inside yet)