Very long method.