Add customer interface and functional tests