General solution