I'm trying to build a cheap system for around $300. I'm just having a little trouble figuring out whether the stuff I would get is going to be upgradeable in the future. I'm looking for about 2GB ram, dual core CPU, 250-500GB HD. I already have a monitor, mouse, keyboard, and I'm planning on using Ubuntu, so that's all taken care of. The part I'm having trouble with is what motherboard and case would be good if I plan on upgrading majorly in the next few years, yet still keeping it cheap initially. Could anyone provide a idea of a build like this?