some semi working client stuff