Basic requirements and design overview