Initial version with external parameters