implementing Processor