almost finished, just plot