logic: expressing "or" in terms of "implies not"

Hi,

I have to express "p | q" (p or q) by using only =>~ (implies not)

I posted this yesterday night, this morning I looked at it again and I came up with a solution:

**Let ->~ be ***

p|q is equivalent to **(( ((P*Q)*P) * ( (P*Q)*Q))*(P*Q) ) * (((p*q)*(p*q))*q)**

My first approach was using truth tables, finding new ones and trying to combine them to get the result I am looking for. This worked in the end, I was able to find a working combination with those truth tables I created, but there must be better ways to solve this kind of problems and to make sure one gets as simple a solution as possible, mine seems too long to be the simplest one.

Anyone knows the right way to solve this?

Thank you