tscholze's community project with some minor design changes