find a good design for user space