refactoring, serverport can be passed
added for test shenanigans
exceptions reworked
exceptions reworked
fixed, not actually works for a local test