separated build and run