almost finished all GUI