Implementing Agents