Add first cut at a user space implementation