basic setup almost finished