placeholders and some opinionated implementations