Still need to implement source location filtering etc.