coded preference gui (not completed yet)