Basic abstract portfolio implementation.